<?php

/**
 * Classe Livre
 */
class Livre {

    public $mdb2;

    /**
     * 
     * @param type $_mdb2
     */
    function __construct($_mdb2) {
        $this->mdb2 = $_mdb2;
    }

    /**
     * 
     * @param type $isbn
     * @param type $titre
     * @param type $auteur
     * @param type $editeur
     * @param type $dateParution
     * @param type $resume
     * @param type $prix
     * @param type $image
     * @param type $categorie
     * @return boolean
     */
    public function ajouter($isbn, $titre, $auteur, $editeur, $dateParution, $resume, $prix, $image, $categorie) { {
            $message = null;
            // si le livre n'existe pas déjà
            if (!$this->existe($isbn)) {

                $sql = "INSERT INTO livre (isbn, titre, auteur, editeur, date_parution, resume, prix, image, id_categorie)";
                $sql .= "VALUES('$isbn', '$titre', '$auteur', '$editeur', '$dateParution', '$resume', '$prix', '$image', '$categorie')";

                //insertion livre
                $result = $this->mdb2->query($sql);

                //on libere l'objet
                $result->free();

                $message = true;
            } else {
                $message = false;
            }
            return $message;
        }
    }

    /**
     * 
     * @param type $page
     * @return type Liste des livres
     */
    public function liste($page, $arrayCriteres = null) {
        $debutLigne = ($page - 1) * 4;
        $livres = array();

        if ($arrayCriteres != null) {
            $categorie = "";
            if ($arrayCriteres['categorie'] != "") {
                $categorie = "AND id_categorie = '" . $arrayCriteres['categorie'] . "' ";
            }

            $sql = "SELECT * FROM livre WHERE ";
            $sql .= "titre like '" . $arrayCriteres['titre'] . "%' ";
            $sql .= "AND auteur like '" . $arrayCriteres['auteur'] . "%' ";
            $sql .= $categorie;
            $sql .= "ORDER BY titre ASC ";
            $sql .= "LIMIT " . $debutLigne . ", 4";
        } else {
            $sql = "SELECT * FROM livre ORDER BY titre ASC LIMIT " . $debutLigne . ", 4";
        }

        $result = $this->mdb2->query($sql);

        $i = 0;

        while ($row = $result->fetchRow()) {
            $livre['id'] = $row[0];
            $livre["isbn"] = $row[1];
            $livre["titre"] = $row[2];
            $livre["auteur"] = $row[3];
            $livre["editeur"] = $row[4];
            $livre["dateParution"] = $row[5];
            $livre["resume"] = stripcslashes($row[6]);
            $livre["prix"] = $row[7];
            $livre["image"] = $row[8];
            $livre['categorie'] = $row[9];

            $livres[$i] = $livre;

            $i++;
        }
        $result->free();

        return $livres;
    }

    /**
     * 
     * @param type $isbn
     * @return boolean
     */
    public function existe($isbn) {
        $sql = "SELECT * FROM livre WHERE ";
        $sql .= "isbn = '$isbn'";
        $result = $this->mdb2->query($sql);

        $row = $result->fetchRow();
        // si résultat
        if ($row) {
            $result->free();
            return true;
        } else {
            $result->free();
            return false;
        }
    }

    /**
     * 
     * @return type Nombre de livres existants
     */
    public function totalLivres($arrayCriteres = null) {

        if ($arrayCriteres != null) {
            $categorie = "";
            if ($arrayCriteres['categorie'] != "") {
                $categorie = "AND id_categorie = '" . $arrayCriteres['categorie'] . "' ";
            }

            $sql = "SELECT COUNT(*) FROM livre WHERE ";
            $sql .= "titre like '" . $arrayCriteres['titre'] . "%' ";
            $sql .= "AND auteur like '" . $arrayCriteres['auteur'] . "%' ";
            $sql .= $categorie;
        } else {
            $sql = "SELECT COUNT(*) FROM livre";
        }

        $result = $this->mdb2->query($sql);

        $row = $result->fetchOne();

        return $row;
    }

}

?>
